iOS SDK API文档

本文档将详细介绍iOS SDK的API,如果您想要了解如何接入,建议您阅读iOS SDK 使用指南获得安装并使用SDK的方法。您可以在访问GitHub获取iOS SDK的源代码。

最新版本为:2.2.0

更新时间为:2019-10-21


一、类 ThinkingAnalyticsSDK

继承自: NSObject
声明于: ThinkingAnalyticsSDK.h

概述

ThinkingAnalyticsSDK iOS SDK, 使用ThinkingAnalyticsSDK 在应用里跟踪事件。


1. 获取实例

+ (ThinkingAnalyticsSDK *)sharedInstance;

说明:

获取实例化对象,请在初始化完成后调用

返回值:ThinkingAnalyticsSDK


2. 初始化


+ (ThinkingAnalyticsSDK *)startWithAppId:(NSString *)appId withUrl:(NSString *)url;

说明:

用appid初始化ThinkingAnalyticsSDK实例,建议在应用代理内的didFinishLaunchingWithOptions方法中初始化您的类,并且一定要在上传事件之前进行初始化。

参数:

appkey:您在TA后台获得的APP ID

url:数据上传的url


3. 追踪事件

- (void)track:(NSString *)event;

说明:

追踪一个事件,该事件将会先保存在本地,再按每20条(可配置)或每15秒(可配置)的规则发送一次。

参数:

event:事件的名称,类型是NSString


- (void)track:(NSString *)event
   properties:(NSDictionary *)propertieDict;

说明:

追踪一个事件,该事件将会先保存在本地,再按每20条(可配置)或每15秒(可配置)的规则发送一次。

参数:

event:事件的名称,类型是NSString

propertieDict:事件的属性,类型为NSDictionary,每个元素代表一个属性,key值为属性名,类型为NSString,value值为属性值,类型为NSString、NSNumber、NSDate,如需上传布尔值,请以@YES与@NO表示


- (void)track:(NSString *)event
   properties:(NSDictionary *)propertieDict
         time:(NSDate *)time;

说明:

追踪一个事件,该事件将会先保存在本地,再按每20条(可配置)或每15秒(可配置)的规则发送一次。

参数:

event:事件的名称,类型是NSString

propertieDict:事件的属性,类型为NSDictionary,每个元素代表一个属性,key值为属性名,类型为NSString,value值为属性值,类型为NSString、NSNumber、NSDate,如需上传布尔值,请以@YES与@NO表示

time:事件触发的时间,类型为NSDate,传入的参数将替换默认选取的调用时本机时间作为事件触发时间


4. 记录事件时长

- (void)timeEvent:(NSString *)event;

说明:

开始记录某个事件的时长,直到用户上传该事件为止,该事件中将会带有#duration这一预置属性,用以表示记录的时长,多次开始记录同一事件的时长将会以最后一次调用作为计时起点,

参数:

event:您需要计时的事件的名称


5. 用户属性

5.1 设置用户属性

- (void)user_set:(NSDictionary *)property;

说明:

设置用户属性,该属性有值则覆盖

参数:

property:需要设置的用户属性,类型是NSDictionary,每个元素代表一个属性,key值为属性名,类型为NSString,value值为属性值,类型为NSString、NSNumber、NSDate,如需上传布尔值,请以@YES与@NO表示


5.2 设置单次用户属性

- (void)user_setOnce:(NSDictionary *)property;

说明:

设置用户属性,该属性有值则不写入

参数:

property:需要设置的用户属性,类型是NSDictionary,每个元素代表一个属性,key值为属性名,类型为NSString,value值为属性值,类型为NSString、NSNumber、NSDate,如需上传布尔值,请以@YES与@NO表示


5.3 累加用户属性

- (void)user_add:(NSDictionary *)property;

说明:

对数值型的用户属性进行累加操作,输入负值相当于减法操作

参数:

property:需要进行累加操作的用户属性,类型是NSDictionary,每个元素代表一个属性,key值为属性名,类型为NSString,value值为属性值,类型为NSNumber


5.4 重置用户属性接口

- (void)user_unset:(NSString *)propertyName;

说明:

对传入属性名的用户属性进行重置,即将值清空设置成NULL

参数:

propertyName:需要进行重置操作的用户属性名,类型是NSString


5.5 删除用户

- (void)user_delete;

说明:

在数据库中删除该用户,该操作可能产生不可逆的后果,请慎用


6. 公共事件属性

6.1 设置公共事件属性

- (void)setSuperProperties:(NSDictionary *)propertyDict;

说明:

添加事件公共属性,设置后上传的事件都会带有这些公共事件属性。每次设置会将新的属性添加进公共属性中,之前设置的也将保留,如果多次设置同一属性,则取最后一次的设置值,公共事件属性的配置将会被保存,无需多次调用

参数:

propertyDict:您添加的公共事件属性,类型是NSDictionary,每个元素代表一个属性,key值为属性名,类型为NSString,value值为属性值,类型为NSString、NSNumber、NSDate,如需上传布尔值,请以@YES与@NO表示


6.2 删除公共事件属性

- (void)unsetSuperProperty:(NSString *)property;

说明:

删除已设置的公共事件属性

参数:

property:需要删除的公共事件属性的属性名,类型是NSString。


6.3 清空公共事件属性

- (void)clearSuperProperties;

说明:

清空所有已设置的公共事件属性


7. 设置访客ID

- (void)identify:(NSString *)distinctId;

说明:

设置用户的访客ID,SDK默认以IDFV或UUID作为用户的访客ID,每次设置将会覆盖先前的访客ID,设置后的访客ID将会被保存,无需多次调用

参数:

distinctId:您设置的访客ID


8. 设置账号ID

- (void)login:(NSString *)accountId;

说明:

设置用户的账号ID,设置后用户上传的数据中将带有#account_id这一字段,每次设置将会覆盖先前的账号ID,设置后的账号ID将会被保存,无需多次调用

参数:

accountId:您设置的账号ID,类型是NSString。

请注意,该方法不会上传用户登录的事件


9. 清空账号ID

- (void)logout;

说明:

清除账号ID,设置后用户上传的数据中将没有#account_id这一字段

请注意,该方法不会上传用户登出的事件


10. 设置上报数据的网络环境条件

- (void)setNetworkType:(ThinkingAnalyticsNetworkType)type;

说明:

设置在哪些网络环境下可以上报数据

参数:

type:上传的网络环境条件,共有三种取值

  • TDNetworkTypeDefault:默认设置,在3G、4G、Wifi状态下上报数据
  • TDNetworkTypeOnlyWIFI:只在Wifi状态下上报数据
  • TDNetworkTypeALL:在2G、3G、4G、Wifi状态下上报数据

11. 开启自动采集功能

- (void)enableAutoTrack:(ThinkingAnalyticsAutoTrackEventType)eventType;

说明:

开启SDK自动采集事件功能,将会自动采集APP的安装、APP的启动、APP关闭、APP页面(View Controller)浏览、APP控件(View)点击与APP崩溃

参数:

eventType:需要开启的自动采集事件类型,共有六种取值

  • ThinkingAnalyticsEventTypeAppInstall,APP安装
  • ThinkingAnalyticsEventTypeAppStart,APP启动
  • ThinkingAnalyticsEventTypeAppEnd,APP关闭
  • ThinkingAnalyticsEventTypeAppViewScreen,APP浏览页面事件
  • ThinkingAnalyticsEventTypeAppClick,APP点击控件事件
  • ThinkingAnalyticsEventTypeAppViewCrash,APP崩溃事件

11.1 忽略某个页面或某些页面的事件

- (void)ignoreAutoTrackViewControllers:(NSArray *)controllers;

说明:

忽略某个(些)页面的自动采集事件,包括浏览页面事件与点击控件事件,将不再上传

参数:

controllers:需要忽略页面的View Controller的类名列表


11.2 忽略某个类型控件的点击事件

- (void)ignoreViewType:(Class)aClass;

说明:

忽略某个类型控件的点击事件,该类型控件的点击事件将不再上传

参数:

aClass:需要忽略控件的类名


12. 与 H5 页面的打通

- (void)addWebViewUserAgent;

说明:

开启与JavaScript SDK的打通开关,详情请参考H5 与 APP SDK 打通一节


二、协议 TDUIViewAutoTrackDelegate

@optional
-(NSDictionary *) thinkingAnalytics_tableView:(UITableView *)tableView autoTrackPropertiesAtIndexPath:(NSIndexPath *)indexPath;

说明:

UITableView的点击事件设置自定义属性,返回值为设置的属性,类型为NSDictionary


@optional
-(NSDictionary *) thinkingAnalytics_collectionView:(UICollectionView *)collectionView autoTrackPropertiesAtIndexPath:(NSIndexPath *)indexPath;

说明:

UICollectionView的点击事件设置自定义属性,返回值为设置的属性,类型为NSDictionary


三、分类 UIView (ThinkingAnalytics)

概述

为UIView增添多个属性,用以在自动采集事件中使用


@property (nonatomic,assign) BOOL thinkingAnalyticsIgnoreView;

说明:

忽略某个控件的点击事件,设置为YES则该控件的点击事件将不再上传


@property (strong,nonatomic) NSDictionary* thinkingAnalyticsViewProperties;

说明:

为自动采集的点击事件设置自定义属性,类型是NSDictionary


@property (nonatomic, weak, nullable) id thinkingAnalyticsDelegate;

说明:

提供代理,在对UITableViewUICollectionView的控件点击事件设置自定义属性时使用


四、协议 TDAutoTracker

@required
-(NSDictionary *)getTrackProperties;

说明:

为自动采集的页面浏览事件设置自定义属性,类型是NSDictionary


五、协议 TDScreenAutoTracker<TDAutoTracker>

@required
-(NSString *) getScreenUrl;

说明:

为页面(View Controller)设置URL schema,在自动采集的页面浏览与控件点击事件中,页面地址属性#url与前向地址属性#referrer将会以该属性为值


results matching ""

    No results matching ""